package com.JUtils.word;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Vector;
import java.util.stream.Stream;

/**
 * @desc:word导入工具类<br>
 * 		需要对Word中的图片、样式、文字、表格进行处理，同时由于POI对Word的处理能力有限，所以采用Jadoc处理
 * 
 * @Author:chenssy
 * @date:2014年8月10日
 */
public class WordExportUtils {
	Vector[] vector = new Vector[10];
	
	String[] strings = new String[10];


	public static String replaceSpace(String[] strs) {

		// 如果检查值不合法及就返回空串
		if (!chechStrs(strs)) {
			return "";
		}
		// 数组长度
		int len = strs.length;
		// 用于保存结果
		StringBuilder res = new StringBuilder();
		// 给字符串数组的元素按照升序排序(包含数字的话，数字会排在前面)
		Arrays.sort(strs);
		int m = strs[0].length();
		int n = strs[len - 1].length();
		int num = Math.min(m, n);
		for (int i = 0; i < num; i++) {
			if (strs[0].charAt(i) == strs[len - 1].charAt(i)) {
				res.append(strs[0].charAt(i));
			} else
				break;

		}
		return res.toString();

	}

	private static boolean chechStrs(String[] strs) {
		boolean flag = false;
		// 注意：=是赋值，==是判断
		if (strs != null) {
			// 遍历strs检查元素值
			for (int i = 0; i < strs.length; i++) {
				if (strs[i] != null && strs[i].length() != 0) {
					flag = true;
				} else {
					flag = false;
				}
			}
		}
		return flag;
	}

	public static int longestPalindrome(String s) {
		if (s.length() == 0)
			return 0;
		// 用于存放字符
		HashSet<Character> hashset = new HashSet<Character>();
		char[] chars = s.toCharArray();
		int count = 0;
		for (int i = 0; i < chars.length; i++) {
			if (!hashset.contains(chars[i])) {// 如果hashset没有该字符就保存进去
				hashset.add(chars[i]);
			} else {// 如果有,就让count++（说明找到了一个成对的字符），然后把该字符移除
				hashset.remove(chars[i]);
				count++;
			}
		}
		return hashset.isEmpty() ? count * 2 : count * 2 + 1;
	}


	public static boolean isPalindrome(String s) {
		if (s.length() == 0)
			return true;
		int l = 0, r = s.length() - 1;
		while (l < r) {
			// 从头和尾开始向中间遍历
			if (!Character.isLetterOrDigit(s.charAt(l))) {// 字符不是字母和数字的情况
				l++;
			} else if (!Character.isLetterOrDigit(s.charAt(r))) {// 字符不是字母和数字的情况
				r--;
			} else {
				// 判断二者是否相等
				if (Character.toLowerCase(s.charAt(l)) != Character.toLowerCase(s.charAt(r)))
					return false;
				l++;
				r--;
			}
		}
		return true;
	}

	// 测试
	public static void main(String[] args) {

	}

}
